Skip to content

hcl_compat_uefi_nvram_storage: load from storage if no saved state #1697

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 17, 2025

Conversation

tjones60
Copy link
Contributor

Fix for a previous change that would have broken VMs that were serviced to a new version of OpenHCL with the UEFI NVRAM saved state. The new version would have skipped loading from storage since it was restoring, and the saved state would have contained an empty Vec. This change converts it to an Option<Vec<>> to distinguish between missing saved state and no NVRAM entries. If the saved state is missing, the HclCompatNvram will lazy load from storage like it did before.

Original PR here: #1556

This is something that should have been caught by cross-version servicing tests, which don't exist currently. We should follow up to add that soon.

@tjones60 tjones60 force-pushed the no_save_load_nvram branch from 567ba21 to 0473eac Compare July 15, 2025 01:51
Copy link

@@ -481,7 +500,11 @@ mod save_restore {
}

fn restore(&mut self, state: Self::SavedState) -> Result<(), RestoreError> {
self.in_memory.restore(state)
if state.nvram.is_some() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have tests below that cover both cases?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally, but we still need to add cross version open source servicing tests.

@tjones60 tjones60 merged commit 4768d83 into microsoft:main Jul 17, 2025
28 checks passed
tjones60 added a commit to tjones60/openvmm that referenced this pull request Jul 17, 2025
…icrosoft#1697)

Fix for a previous change that would have broken VMs that were serviced
to a new version of OpenHCL with the UEFI NVRAM saved state. The new
version would have skipped loading from storage since it was restoring,
and the saved state would have contained an empty Vec. This change
converts it to an Option<Vec<>> to distinguish between missing saved
state and no NVRAM entries. If the saved state is missing, the
HclCompatNvram will lazy load from storage like it did before.

Original PR here: microsoft#1556

This is something that should have been caught by cross-version
servicing tests, which don't exist currently. We should follow up to add
that soon.
gurasinghMS pushed a commit to gurasinghMS/openvmm that referenced this pull request Jul 21, 2025
…icrosoft#1697)

Fix for a previous change that would have broken VMs that were serviced
to a new version of OpenHCL with the UEFI NVRAM saved state. The new
version would have skipped loading from storage since it was restoring,
and the saved state would have contained an empty Vec. This change
converts it to an Option<Vec<>> to distinguish between missing saved
state and no NVRAM entries. If the saved state is missing, the
HclCompatNvram will lazy load from storage like it did before.

Original PR here: microsoft#1556

This is something that should have been caught by cross-version
servicing tests, which don't exist currently. We should follow up to add
that soon.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants